008ec70b1bb7bbba72e41c54d3ec38a823fb55ca,clc/modules/cluster-manager/src/main/java/com/eucalyptus/cluster/callback/DescribeSensorCallback.java,DescribeSensorCallback,fire,#DescribeSensorsResponse#,156
Before Change
combineReadWriteDiskMetric("VolumeReadOps", "VolumeWriteOps", metricCacheMap, "VolumeConsumedReadWriteOps", metricType, sensorData, dimensionType, value);
// Also need VolumeTotalReadWriteTime to compute VolumeIdleTime
combineReadWriteDiskMetric("VolumeTotalReadTime", "VolumeTotalWriteTime", metricCacheMap, "VolumeTotalReadWriteTime", metricType, sensorData, dimensionType, value);
}
}
After Change
final Double currentValue = value.getValue();
ec2DiskMetricCache.initializeMetrics(sensorData.getResourceUuid(), sensorData.getResourceName(), currentTimeStamp); // Put a place holder in in case we don't have any non-EBS volumes
boolean isEbsMetric = dimensionType.getDimensionName().startsWith("vol-");
boolean isEc2DiskMetric = !isEbsMetric && EC2_DISK_METRICS.contains(metricType.getMetricName().replace("Volume", "Disk"));
if (isEbsMetric || isEc2DiskMetric) {
sendSystemMetric(new Supplier<InstanceUsageEvent>() {
@Override
public InstanceUsageEvent get() {
return new InstanceUsageEvent(
sensorData.getResourceUuid(),
sensorData.getResourceName(),
metricType.getMetricName(),
dimensionType.getSequenceNum(),
dimensionType.getDimensionName(),
currentValue,
currentTimeStamp);
}
});
if (isEbsMetric) {
// special case to calculate VolumeConsumedReadWriteOps
// As it is (VolumeThroughputPercentage / 100) * (VolumeReadOps + VolumeWriteOps), and we are hard coding
// VolumeThroughputPercentage as 100%, we will just use VolumeReadOps + VolumeWriteOps
// And just in case VolumeReadOps is called DiskReadOps we do both cases...
combineReadWriteDiskMetric("DiskReadOps", "DiskWriteOps", metricCacheMap, "DiskConsumedReadWriteOps", metricType, sensorData, dimensionType, value);
combineReadWriteDiskMetric("VolumeReadOps", "VolumeWriteOps", metricCacheMap, "VolumeConsumedReadWriteOps", metricType, sensorData, dimensionType, value);
// Also need VolumeTotalReadWriteTime to compute VolumeIdleTime
combineReadWriteDiskMetric("VolumeTotalReadTime", "VolumeTotalWriteTime", metricCacheMap, "VolumeTotalReadWriteTime", metricType, sensorData, dimensionType, value);
}
} else {
// see if it is a volume metric